The constant emphasis in the design of computer systems has been on making such systems faster and able to handle larger amounts of information so that they may accomplish more work. The ability of computers to do more work is also enhanced by their ability to do more different kinds of work. For example, computers have become of much more use in many more activities with the advent of computer graphics displays which allow the presentation of not only numbers and text materials but pictures and graphs representing the meanings of those numbers and adding tot he meaning of the text material. It has gradually become the belief of a great number of people in the computer industry that a graphical output should be presented on almost all computer systems.
In a typical computer system, a graphics controller sends video signals to monitors and also controls a frame buffer memory system. Fonts representing text, for example, are written into a frame buffer associated with the computer system. The graphics controller typically extracts the characters of the font to scan them onto a display or monitor of the computer system. A first system for rendering font characters into the frame buffer on system memory requires that the font characters be downloaded directly from a central processing unit (CPU) via the graphics controller. Downloading the characters directly from the CPU can be a very slow process because an image of a character typically requires many bytes per pixel.
In a second embodiment, a glyph is provided. A glyph is a compressed representation of the font for each byte of a font. Typically, in a glyph a bit represents a pixel of information. Accordingly, each pixel represented on the frame buffer is represented by one bit of information provided by the CPU, rather than a byte or bytes of information being rendered in to the memory as required in the first above-mentioned system. Accordingly, it is possible in accordance with the second embodiment to provide for lossless compression and therefore a faster render rate is possible.
In such a system, the graphics controller will select between two color registers, typically referred to as a foreground register and a background register. The graphics controller receives the bits from the CPU representative of the particular character of a particular font and based upon the whether a bit represents foreground or background color, the appropriate register renders the byte or bytes of information for that pixel. The lossless compression is possible because font characters are typically one color (for example, black) and therefore only two different colors need to be provided (i.e., black for foreground and white for background). Although the second embodiment has some advantages over the first above described embodiment, it still has some significant disadvantages which will be described below.
A system in accordance with the second embodiment, requires that the CPU transfer several pieces of information to graphics controller for every font character that is to be rendered into memory. Accordingly, the CPU must find the fonts, find the character in the font, and then figure out how many bytes to transfer and transfer this information across the bus. In so doing, several different transfers are required to render a group of font characters into memory. Therefore, the bandwidth required for the transfers becomes a significant issue.
Accordingly, what is needed is a system that allows for increased throughput of fonts in a computer system to allow more efficient rendering of font characters thereof. The system must be efficient, easily implemented and a cost effective alternative to existing systems.
The present invention addresses such a need.